package qc.common.core.enums.qms;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 查询点号数据时间（段）类型
 *
 * @author QuCheng Tech
 * @since 2025/9/21
 */
@Getter
@AllArgsConstructor
public enum QmsQueryPointDataTimeRangeTypeEnum {
    //查询点号数据时查询数据的时间(段)类型；界面中查询数据和计算中查询输入点号数据均使用该枚举
    //将界面中查询数据和计算中查询分开定义：是否分开待定，尽量合并为同一个；
    //界面中查询：一段时间（一段时间、今日/月、最近n小时/天）、指定时间点、最新一条、最迟一条
    //对应时间点、最近一条、时间段数据；一段时间数据（指定时间段）
    RANGE(0, "区间"),//指定（外部传入）起止时间段区间
    RANGE_PERIOD(1, "统计周期"),//指定的一种时段作为统计周期，如当日、本月、本年
    RANGE_RECENTLY(2, "最近"),//top-n,最近n小时、最近n天
    POINT_IN_TIME(3, "指定时间点"),//定点，不往前或往后，只取指定的时间点
    POINT_OF_LATE(4, "时间点最近"),//指定的时间点往前往后最近1条数据
    LATEST_BEFORE(5, "时间点往前最近");//指定的时间点往前最近1条数据，不往后取数

    @EnumValue
    private int index;
    private String name;

    @Override
    public String toString() {
        if (this != null)
            return this.name;

        return null;
    }
}
